import React from 'react';
import VoteHead from './VoteHead';
import VoteMain from './VoteMain';
import VoteFooter from './VoteFooter';
class Vote extends React.Component {
	state = {
		supNum: 0,
		oppNum: 0
	};
	changeNum = type => {
		if (type === 0) {
			this.setState({
				supNum: ++this.state.supNum
			});
			return;
		}
		this.setState({
			oppNum: ++this.state.oppNum
		});
	};
	render() {
		let { title } = this.props;
		let { supNum, oppNum } = this.state;

		return <section>
			{/* 
			  * 父组件把信息传递给子组件是基于属性传递的
			  *   1.只能父亲调用子组件的时候传递（只能父传子，属于单向的）
			  *   2.但是可以基于回调函数的机制实现“子改父”
			  *     =>把父组件中的一个方法，当做属性传递给子组件
			  *     =>子组件中可以接收到这个方法
			  *     =>再子组件中把这个方法执行，从而实现对父组件中一些信息的修改
			*/}
			<VoteHead title={title} supNum={supNum} oppNum={oppNum} />
			<VoteMain supNum={supNum} oppNum={oppNum} />
			<VoteFooter changeNum={this.changeNum} />
		</section>;
	}
}
export default Vote;